home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
12984
/
12984.xpi
/
chrome
/
VideoDownloaderToolbar.jar
/
content
/
Profile.js
< prev
next >
Wrap
Text File
|
2010-01-29
|
3KB
|
142 lines
if(!com) var com={};
if(!com.VidBar) com.VidBar={};
com.VidBar.Profile = function() {
this.fieldValues = this.cloneDefault();
},
com.VidBar.Profile.prototype = {
pref : Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService).getBranch("vidbar."),
defaultFieldValues : {
"firstname" : "",
"middlename" : "",
"lastname" : "",
"email" : "",
"company" : "",
"address1" : "",
"address2" : "",
"city" : "",
"state" : "",
"zip" : "",
"country" : "",
"phone" : "",
"fax" : ""
},
fieldValues : null,
load : function() {
var v = null;
try{
v = this.pref.getCharPref("profile");
}catch(e){
v = null;
}
if(!v){
this.fieldValues = this.cloneDefault();
}else{
v = this.DecodeBase64(v);
if(!v){
this.fieldValues = this.cloneDefault();
}else{
this.fieldValues = JSON.parse(v);
}
}
},
save:function() {
var v = JSON.stringify(this.fieldValues);
//alert(v);
v = this.EncodeBase64(v);
//alert(v);
this.pref.setCharPref("profile", v);
},
cloneDefault:function() {
var v = {}
for(var i in this.defaultFieldValues){
v[i] = this.defaultFieldValues[i];
}
return v;
},
Base64KeyStr: "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv"
+ "wxyz0123456789+/" + "=",
EncodeBase64 : function(input) {
input = escape(input);
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + this.Base64KeyStr.charAt(enc1) + Base64KeyStr.charAt(enc2)
+ Base64KeyStr.charAt(enc3) + Base64KeyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return output;
},
DecodeBase64 : function(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
var base64test = /[^A-Za-z0-9\+\/\=]/g;
if (base64test.exec(input)) {
alert("There were invalid base64 characters in the input text.\n"
+ "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n"
+ "Expect errors in decoding.");
}
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1 = Base64KeyStr.indexOf(input.charAt(i++));
enc2 = Base64KeyStr.indexOf(input.charAt(i++));
enc3 = Base64KeyStr.indexOf(input.charAt(i++));
enc4 = Base64KeyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return unescape(output);
}
};